﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BLL;
using Entities;

namespace QLTB_CTK34
{
	public partial class FrmQuanLiKQBaoTriTB : Form
	{
		public FrmQuanLiKQBaoTriTB()
		{
			InitializeComponent();
			dgvDSKQBaoTriTB.AutoGenerateColumns = false;
		}

		/// <summary>
		/// Làm mới danh sách trong datagridview
		/// </summary>
        private void toolStripButtonRefresh_Click(object sender, EventArgs e)
		{
			LoadData();
		}

		/// <summary>
		/// Hàm load dữ liệu
		/// </summary>
		void LoadData()
		{
			dgvDSKQBaoTriTB.DataSource = QLKQBaoTriTB.GetAll();
			for (int i = 0; i < dgvDSKQBaoTriTB.Rows.Count; i++)
			{
				ThietBi tb = QLThietBi.FindByID(dgvDSKQBaoTriTB.Rows[i].Cells["MaTB"].Value.ToString());
				dgvDSKQBaoTriTB.Rows[i].Cells["TinhTrangTB"].Value = tb.TinhTrang;

			}
		}

		/// <summary>
		/// Thoát form 
		/// kết quả bảo trì thiết bị
		/// </summary>
        private void toolStripButtonThoat_Click(object sender, EventArgs e)
		{
			Close();
		}

        /// <summary>
        /// Khi click vào thêm kết quả bảo trì thiết bị thiết bị, form thêm sẽ được hiển thị
        /// </summary>
        private void toolStripButtonThem_Click(object sender, EventArgs e)
        {
            FrmThemKQBaoTriTB ltb = new FrmThemKQBaoTriTB();
            if (ltb.ShowDialog() == DialogResult.OK)
            {
                LoadData();
                Generic.SelectDataGridviewRowTheoMa(dgvDSKQBaoTriTB, "MaThongBao", ltb.kqbttb.MaThongBao);
            }
        }

        /// <summary>
        /// Khi click vào button xóa lỗi thiết bị, lỗi được chọn sẽ bị xóa và tự làm mới danh sách
        /// </summary>
        private void toolStripButtonXoa_Click(object sender, EventArgs e)
        {

            for (int i = dgvDSKQBaoTriTB.SelectedRows.Count - 1; i >= 0; i--)
                QLKQBaoTriTB.DeleteByID(int.Parse(dgvDSKQBaoTriTB.SelectedRows[i].Cells["MaThongBao"].Value.ToString()));
            LoadData();
			QLNhatKy.ThemNhatKy("Xóa quản lý kết quả bảo trì");
        }

        /// <summary>
        /// Khi click vào button cập nhật lỗi thiết bị, form cập nhật sẽ được hiển thị
        /// </summary>
        private void toolStripButtonSua_Click(object sender, EventArgs e)
        {
            if (dgvDSKQBaoTriTB.SelectedRows.Count > 0)
            {
                var maloi = dgvDSKQBaoTriTB.SelectedRows[0].Cells["MaThongBao"].Value;
                CapNhatKQBaoTriTB ltb = new CapNhatKQBaoTriTB(QLKQBaoTriTB.FindByID(int.Parse(maloi.ToString())));
                if (ltb.ShowDialog() == DialogResult.OK)
                {
                    LoadData();
                    Generic.SelectDataGridviewRowTheoMa(dgvDSKQBaoTriTB, "MaThongBao", ltb.kqbt.MaThongBao);
                }
            }
        }

		/// <summary>
		/// Load danh sách kết quả khi mở form
		/// </summary>
		private void FrmQuanLiKQBaoTriTB_Load(object sender, EventArgs e)
		{
			LoadData();
            LoadPhanQuyen();
		}

		

		private void textBox1_TextChanged(object sender, EventArgs e)
		{
			QLKQBaoTriTB.DKTimKiem dk = (QLKQBaoTriTB.DKTimKiem)cbbLoaiTK.SelectedIndex;
			QLKQBaoTriTB.TimKiem(dk, dgvDSKQBaoTriTB, txtDKTK.Text);
		}

		private void dgvDSKQBaoTriTB_MouseDown(object sender, MouseEventArgs e)
		{
			if (e.Button == MouseButtons.Right)
			{
				var a = dgvDSKQBaoTriTB.HitTest(e.X, e.Y);
				dgvDSKQBaoTriTB.ClearSelection();
				dgvDSKQBaoTriTB.Rows[a.RowIndex].Selected = true;
			}
		}

        private void toolStripButtonPrint_Click(object sender, EventArgs e)
        {
            FrmInAn inan = new FrmInAn(DKForm.KQBaoTri);
            inan.ShowDialog();
        }

		private void btnXemLoiTB_Click(object sender, EventArgs e)
		{
			FrmQuanLiThongBaoLoiThietBi ltb = new FrmQuanLiThongBaoLoiThietBi();
			ltb.ShowDialog();
        }
        void LoadPhanQuyen()
        {
            toolStripButtonPrint.Visible = PhanQuyen.CheckQuyenSuDung(MyAccount.account.MaTK, "InKQBaoTriTB");
            //thêmKếtQuảToolStripMenuItem.Visible = toolStripButtonThem.Visible = PhanQuyen.CheckQuyenSuDung(MyAccount.account.MaTK, "ThemKQBaoTriTB");
            cậpNhậtKếtQuảToolStripMenuItem.Visible = toolStripButtonSua.Visible = PhanQuyen.CheckQuyenSuDung(MyAccount.account.MaTK, "SuaKQBaoTriTB");
            xóaKếtQuảToolStripMenuItem.Visible = toolStripButtonXoa.Visible = PhanQuyen.CheckQuyenSuDung(MyAccount.account.MaTK, "XoaKQBaoTriTB");
        }
	}
}
